{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 过拟合和欠拟合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "np.random.seed(666)\n",
    "x = np.random.uniform(-3.0, 3.0, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x**2 + x + 2 + np.random.normal(0, 1, size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108f12278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.49537078118650091"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "lin_reg = LinearRegression()\n",
    "lin_reg.fit(X, y)\n",
    "lin_reg.score(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nEkKBLiKSEP8LkzkGqKiuxkcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11155e630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_predict = lin_reg.predict(X)\n",
    "plt.scatter(x, y)\n",
    "plt.plot(np.sort(x), y_predict[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.0750025765636577"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "\n",
    "y_predict = lin_reg.predict(X)\n",
    "mean_squared_error(y, y_predict)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用多项式回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "def PolynomialRegression(degree):\n",
    "    return Pipeline([\n",
    "        (\"poly\", PolynomialFeatures(degree=degree)),\n",
    "        (\"std_scaler\", StandardScaler()),\n",
    "        (\"lin_reg\", LinearRegression())\n",
    "    ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('poly', PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)), ('std_scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('lin_reg', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False))])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly2_reg = PolynomialRegression(degree=2)\n",
    "poly2_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0987392142417856"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y2_predict = poly2_reg.predict(X)\n",
    "mean_squared_error(y, y2_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nY+pLhRAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1112ee358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.plot(np.sort(x), y2_predict[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0508466763764164"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly10_reg = PolynomialRegression(degree=10)\n",
    "poly10_reg.fit(X, y)\n",
    "\n",
    "y10_predict = poly10_reg.predict(X)\n",
    "mean_squared_error(y, y10_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10a0a3be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.plot(np.sort(x), y10_predict[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.68743577834336944"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly100_reg = PolynomialRegression(degree=100)\n",
    "poly100_reg.fit(X, y)\n",
    "\n",
    "y100_predict = poly100_reg.predict(X)\n",
    "mean_squared_error(y, y100_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXd4VFX6xz8nhTAkJKGEkgQFFSMISmiiCCqKqLSsujYs\nq+7aV9efCws2VNaKbXXtvbACKgYUC4qKiliAiDSjdDL0EkJCes7vj5NJMsmUOyWZmeT9PA/PkDt3\n7j2TzHzve7/nfd+jtNYIgiAIkU9UqAcgCIIgBAcRdEEQhGaCCLogCEIzQQRdEAShmSCCLgiC0EwQ\nQRcEQWgmiKALgiA0E0TQBUEQmgki6IIgCM2EGG87KKVeBcYAu7TWfaq3tQdmAd2BTcAFWuv93o7V\nsWNH3b179wCGKwiC0PJYtmzZHq11irf9lLfSf6XUcKAQeLOOoD8C7NNaP6SUmgy001r/y9vJBg4c\nqJcuXWrpDQiCIAgGpdQyrfVAb/t5tVy01t8A++ptHg+8Uf3/N4Asn0coCIIgBBV/PfTOWuvt1f/f\nAXQO0ngEQRAEPwl4UlQbz8atb6OUukYptVQptXT37t2Bnk4QBEFwg7+CvlMp1RWg+nGXux211i9q\nrQdqrQempHj19AVBEAQ/8VfQ5wFXVP//CmBucIYjCIIg+ItXQVdKvQMsATKUUnlKqauBh4CRSqk/\ngDOqfxYEQRBCiNc8dK31xW6eOj3IYxEEQWhWZOfYmf5ZLtvyi0lNtjFxVAZZmWmNdj6vgi4IgiB4\nxpVwA0yZs5KRK77k9OIC3hwwlilzVgI0mqiLoAuCIARAdo6dKXNWckTe75TFt8eOEfLWsVEUl1cy\ndu03pBXs4s0BYykur2T6Z7mNJujSy0UQBCEApn+WS3FZBW/PvJN/LJ4BQHF5JfsPlQOQUHaIg63a\n1Oy/Lb+40cYigi4IghAA2/KLSSnaT7uSg3TL39ng+YTSQxTG1Qp6arKt0cYigi4IghAAqck2jtyX\nZ/5fUFs8mWyLxRYbTULZIQqrI3RbbHSNv94YiIcuCIIQABNHZZDzTTYAXQ/uAa2xtYrhnnHHApD0\nZDGFcTbSJMtFEAQhvMnKTKNP+xIA4stLOKZ1JddlZdYKd0UJE0b2ZcLkEY0+FhF0QRCEADkqf1vN\n/z89/wjoWy3mZWVQUgKJiU0yDvHQBUEQAiU3F9LTzf+3bq3dfvCgeRRBFwRBiADKymDjRhg50vxc\nV9ALCsyjCLogCEJoyc6xM/ShL+kxeT5DH/qS7Bx7w53Wr4fKSjjlFIiODqmgi4cuCILgAkcFaHF5\nJQD2/GLXpfu5ueaxVy9ITZUIXRAEIdyY/lkuxeWVxFaWM3jrKoCa0n0nHIKekQHduomgC4IghBuO\nEv1/fPc/Zv9vMmkHdjltryE3Fzp3hqQkEXRBEIRwJDXZRueDe7hq6TwAkksO1mx3IjfXROdgBD0v\nD3T1qpwi6IIgCKFn4qgMblsyE1tFKQC28hLXpfv1Bb2kBPbsMT+LoAuCIISeLNtB/rxiAavTjwGg\nWyvNg+f2dZ4Q3bvX/HMIev1c9IICUAri45tkzCLogiAIrrj9dlR8PMe+/l8Anhh9VMM+LL//bh7r\nRujgLOiJiUbUmwARdEEQhPosWQIffACTJkH37mZbUVHD/RwZLkcfbR7dCXoTIYIuCEKzxVJhUH20\nhn/9y2Su3HprrV1ST9Czc+y89foCyqOiGf7uJnPsTp0gNtZZ0JOSgvyu3COFRYIgNEssFwbVZ/58\n+PZbeO45I+aOjJXCwgbHfnLbRrYkd2XLwfLaY6enS4QuCIIQTByFQXVxWRhUl8pKmDwZevaEq682\n29pUrzZUJ0J3LDuXuS2XX7sc5XzsurnoIuiCIAiB427tTo9rer71FqxeDQ88YKwTgKgosNmcBH1b\nfjHdDuykU9F+lqX3dj62CLogCEJwcbd2p9s1PYuL4a67YPBgOO885+fi450EPTXZxsC8NQAsTevl\nfOxu3cBuN9G+CLogCELgTByVgS022mmbxzU9n3nGVHk+/HDDNMOEhBoPPTvHzqGyCgba11DQqg2/\ndzzM+djdukFFBezc2eSCLpOigiA0SxwTn9M/y2VbfjGpntb03L/f2Cxnnw2nntrw+eoIve5E64C8\ntSxP60VVVDTJtljuGXesOXZederi5s3mIiCCLgiCEDhZmWnWFmV++GHIz4cHH3T9fLWgOyZaE0sK\nOXrPFj7qNcw8HRdTex5HLvoaY8mI5SIIgtBU5OXBf/4Dl14Kxx/vep9qy8VePaHa376WKDTL0syE\nqNNEq0PQV682jxKhC4IgNA7ZOXYnG2bGjy/RvaoK7rvP/Yvi48m370QBGhhoX0uFiuKXrqZC1Gmi\ntX17kxUTAkEPKEJXSt2qlFqtlFqllHpHKdU6WAMTBEEINg4P3J5fjAZs63LpNnc26/58RW2Jvyvi\n4ynYk48GEkoPce6qL1medgzFrVqjwHmiVSkTpUeSoCul0oCbgYFa6z5ANHBRsAYmCIIQTLKX5zHv\nwVdQRbUVn5O+eZOi2Nbc3ONszy9OSCCu1NgqN30/ky4H9/LAaabwSOOi8tSRugiRIejVxAA2pVQM\n0AbYFviQBEEQgsu8H9YTc/llvPruVO754gUABuSt4cw/fuD5IeeztryV5wPExxNfbvqin77+ZxYd\n0Z9fUk1UnuYqr93ho0NkCLrW2g48CmwBtgMHtNYLgjUwQRCEoLBrFz0uHMeY1V+zoktPzl+5kD47\n1jH569fZmdCe1waMc19s5CA+njYVJXSpOETPvVv5Of1YwENee6QJulKqHTAe6AGkAvFKqUtd7HeN\nUmqpUmrp7t27/R+pIAiCP1x2GUdtW8/14ydz6UX/Zl+bRF56fxqD7Gt4cuglEB/vvtjIQUICUZWV\n/KfrAQCWpx1DWrKt4YIXDiJN0IEzgI1a691a63JgDnBS/Z201i9qrQdqrQempKQEcDpBEAQ/+PFH\nPh44ik+OOZmDcfE8cfIEuhbuZX37NN4//kz3olyX6ha6J6xbBtHRzHzpZhZPHuH+dXUFPSEhSG/E\nO4GkLW4Bhiil2gDFwOnA0qCMShAEoR710w3dVn3W5eBBOHCAjMF9sMVGU1xeyczjR3Hk3jw+73MK\nj1zU31rhkaMn+uefQ79+3peUcwh6QgJER3veN4gE4qH/CLwHLAdWVh/rxSCNSxAEoYb66YaO3uZe\nF6yozjTpM7g3D57bl7RkG1VR0bxy/i1ceMuF1sQcaqPs9evhpAZGRAM+2mdEfAetrC+sEQQCKizS\nWk8FpgZpLIIgCC7x1Nvcoyg7UgfT0623AXBF3Yjci6Bn59iZsmATw1u1obBVG+sLawQBKf0XBCHs\n8au3OZiyfoC0AIXUB0F3XHy2J3akMM4sjuF1YY0gIaX/giCEPanJtpo+KvW3e8QRoQcq6A7LJS3N\necLTBY6LzNzep7rc3phIhC4IQtjjc29zB3Z7bW+VAFi4xVSXzk/owdCHv/LoiTsuMs+eeAHPnnhB\ng+2NiQi6IAiA8X6HPvQlPSbPb9KJPCtkZabVTGoq8JwDXpe8vICj8+wcO/d+ux2An9N7e52Q9fvi\nEwSUdqxo3QQMHDhQL10qmY2CEG7UXbjBgS022ppohjH7ex/Pb5VxXPKnqdZTHesx9KEvsecXc+Lm\nX1mW1ouyGLPWaFqyjcWTR7h8jV8plh5QSi3TWg/0tp946IIg+J9FEsZk59gZumUrm44c5JTqCL5l\nmzi87yWHH+dyuysCyqgJALFcBEHwP4ukqfn8c7j8cqiq8rrrE/NX0aEon51tO9Rs8yfbxOfFpkOI\nCLogCJEjWtnZ8NZb8NVXXnettG8jCs2OhA5O2329SIXSE/cVEXRBECJHtBxpiK+84nXXXuoQgFOE\nDr5fpPyekA0B4qELglAjTsGcyGsUHIVCc+bA/v3Qrp3bXa86pi0A+2213Q79vUiFyhP3FRF0QRCA\nCBGtvDwYNAh+/hlmzICbbnK764lJJoOvVedOKAjfi1QQEUEXBCEyKCuDnTvh+uuhstLYLh4Enb17\nAZh951hISmqiQYYWEXRBECKD7aa4h/R0uOoquOkmvvrfp9y5pZVrm2jPHoiJadIFJkKNTIoKghAZ\n1G20dcklVLaKY/vjz7hvqbtnD3ToAEqFbMhNjQi6IAiRgUPQ09OhXTsW9jqZ0au+Iq568Waol2e+\nd68R9BaECLogCJFBXUEHXu81gqTSIkb9scRpt5o88z17oGPHphxhyBFBFwQhMrDbTV/y6gnOLX0H\nsyWpMxf+usBpt5o88717RdAFQRDCkrw8E51Xe+L/PLsXH/QbxdDNv9ItfwfgnGdesmMXc7eWhmX3\nyMZCBF0QhMigXivcrMw0MibfREVUNDcume1UwZm9PI/o/fvIi27j2xqkEY4IuiAIkYEjQq/DWWcN\nIuaWm7lo5ecsHplkxDzHztS3lhBbVcm+OlWiTbUMXCgRQRcEIfyprDR56PUEHYC77zZe+S23kL08\njylzVpJ06AAA+TbnHPSw6x4ZZETQBUEIf3btgooK14KenAwPPACLF5PzyPMUl1fSrrgAgH1tnAU9\n7LpHBhkRdEEQwp+6RUWuuPJK6N+f6+Y/j62spEbQg9GYK5IQQRcEIfypl4PegOhoeOopuhbu5fof\n3qVd8UEA9ttMx8VopcK25W0wEUEXBCH8cfRBdyfoAEOHsvXsLK79aQ7H7fgDMBG6LTaaxy44vtmL\nOYigC4IQCeTlQatWXguFur34NNGxMVy+fD4VKoq2nTu2iMjcgQi6IAjhjyMHPcqLZKWnE3PnHUTr\nKmJSOrJ4yuktRsxBBF0QhEigXlGRR267DXr0gC5dGndMYYj0QxcEIbzRGnJz4YwzrO3fujV8+ikU\nFTXuuMKQgCJ0pVSyUuo9pdRvSqm1SqkTgzUwQRAEgM/nfgc7dnD77mTrPVmOPhoyMxt/cGFGoJbL\nf4BPtdbHAMcDawMfkiAIgiE7x863L70HwA/d+rSYniz+4regK6WSgOHAKwBa6zKtdX6wBiYIgjD9\ns1z6b1rB7vhkNrQ3HnpL6MniL4FE6D2A3cBrSqkcpdTLSqn4II1LEASBbfsPccKWVfzQra/TUnLN\nvSeLvwQi6DFAf+A5rXUmUARMrr+TUuoapdRSpdTS3bt3B3A6QRBaGoOq8ulauJcfD+vrtL2592Tx\nl0AEPQ/I01r/WP3zexiBd0Jr/aLWeqDWemBKSkoApxMEoaUxuc1OwPjnDlpCTxZ/8VvQtdY7gK1K\nKcdv9nRgTVBGJQiCAPTfuILSdh0oPvJoFDgtYiE0JNA89L8DM5RSrYANwJWBD0kQBKGaRYuIO/00\nFk85PdQjiQgCEnSt9S/AwCCNRRAEoZZNm2DLFpg4MdQjiRik9F8QhPDk66/N46mnhnIUEUVElP5n\n59iZ/lku2/KLSU22MXFUhnhogtDcWbQIOnSA3r1DPZKIIewFPTvHzpQ5KykurwRqV+8GRNQFIYwI\nOPCqqnLuprhoEQwf7r3DolBD2P+mpn+WWyPmDqRSTBDCC0fgZc8vRmMCr3/M+oXed31Cj8nzPfdg\nWbsWTjkFevaE4uqCoS1bYONGsVt8JOwFfVt+Ma3LSzh1/c90KdjjtF0QhPDAVeAFcKi8qkbgG/Rg\nKSmBqVPh+OMhJwc2bICXXzbPLVpkHk85pfEH34wIe0FPTbbRsSif19+7l6GbVzhtFwQhPLASYDnd\nWS9aBP36wX33wQUXwLp1xl55+GEoLTXPt2sHfft6PqjgRNgL+sRRGbRqFQtAdJWJAKRSTBDCC6sB\nVtH2XXD11cZKKSszfcvffhs6dYI77zRrh77xhslwEf/cZ8L+t5WVmcak0WaWO0ZXSaWYIIQhE0dl\noDztoDXj1iziy1evN4I9aRKsWgWjRtXuc8YZMHgw3H03rF8vdosfhL2gA5zVrxsAD4zrxeLJI0TM\nBSHMyMpMY8KQw1yKenr+Dt54dypPfTgddfjhsGyZsVbatHHeUSmWXHID7DT9W67cYJO+5z4S9mmL\nAERHm8fKhpMugiCEB//O6svAw9vXpC4m2WI5Z+WX3DX3SXRUFL9OvJfjHryj9vtcjSPd0Z5fjNId\nmN+pB2kHdrHIlsoPkqLsE5Eh6DHVwxRBF4SwJiszrVZ8330X7psOw4bBW29xXLduDfavX2eileLG\n8ZPpWLSfqqjomolUEXRrRIagO67oFRWhHYcgtACCUpn98cdwySVw4okwfz7Eu177xlW648b2aWxs\nX3s+SVG2TmQJukTogtCoBKUy+5tv4LzzTH65BzEHa2ItKcrWiYhJUbFcBKFpCLgyu7QULrsMDj/c\npCQmJXnc3ZtYS4qyb0SGoIvlIghNgruI2artsfyhZ2HLFq447hKGvvyr1yyViaMysMU6T5I6MmUk\nRdl3IsNycRQXSIQuCI1KarINuwvxtmJ7ZC/bSq9nn2JtSncW9egPFuwax3bpphocIkPQlTJRugi6\nIAQdxyRo11XL+GDew/yc2ov/G30rpbFxAMRGKUu2x+qHniZr1yZuGXOb+c6CpSwVp8wYISAiQ9DB\nCLpYLoIQMHWzWJJssRSVVdBz23remnUXUbqK0bnfkVK0j7+edzcFrRPwXAJazYEDXPvxSyxLPYZ5\nvZ0rPCVLpemIDA8dJEIXworsHDtDH/rSe2vYMKN+m9v84nLKKzUTfvmYKqU46frXuGH8ZI7f/rsR\n+KpKyiu190nRe+6hffEB7h55HVo5y4pkqTQdkROhx8RIhC6EBZG86IqrLJboqkrOyv2ehUcNZm98\nMh8fczKtK0p5fP4TnL7+Zz7vOQR7fjFDH/rStc+9ahU8/TSbz53Ahm4ZUOf4kqXStEiELgg+EsmL\nrriyP4ZsWUmH4gLmH3Nyzba5vU9lW9uOXLZ8PmBcl7qLV9T0Ntcabr4ZEhPp8cKTPHhuX9KSbSgk\nSyUURE6EbkXQKyvhhRfgqqugdeumGZfQ4gg0tS+UuMpiGf3btxS2svF1jwE12yqjopnR72wmfvsW\nR+7dyvoOzmX7NZOdfyyGr76CZ5+FDh3I6hD+dynNmciJ0K1YLt9/DzfeCO+91zRjElok7jzhpvKK\nrfj37vapn/cdU1nBWb8v4ZuMIZTFxpGWbOPSIYeRlmxj1vGjKIuO5dKcj12OY9+u/XDbbWahimuu\nsTw2ofFoXhH61q3mMScHLr208ccktEgmjspw8tCh6bxiK/69lX0cWS5j9+bSvriAc6bdwsbxoxue\nMP9Tzn93Do8Ou4yiOOd2t3//YTbk5cHMmRAdHdFzC82FyInQrQi6vToa+OWXxh+P0GLJykwLmVds\nxb/3tk9WZhqLJ49g40OjeULlQmKi80ITdbnpJtqWHuJPa7522nz4/m1c/dMcEzgNHWp5bELjEjkR\nuhXLxSHoOTlmskZZSaAVBN8JVTGMFf/essdfVgYffADjx7ufcxo8mN/SjubyZR/xdr+za75Tdy98\nicroWHjkEd/PKzQazStCz8szj/v319ovgtCMsOLfW/b4Fy4035ULLnB/QqU49LfrOHrvFk7c8isA\nI9b9xOnrf2bDDbdB166+n1doNJqVoO/7fSOFcaZV57/ufEMmZIRmh2NS89T1Szl2xzqgoX/vquGV\nS49/9mzTDXHkSI/n7D/pOko6dmLSj7OIqyjjvq9e5mD3o+jz8F0ux+b1vEKjETmC7sVyyc6xU7J5\nK98cfjxVKLps+K02V1YQIgx32SJZmWm8Ffc7r793D/+d9wjpiXEN/HtLHr/DbsnKgrg4z4Ox2Wh9\nz91kbvyV3J+fJH3fNtq++Cy0auW0WyjnFgRDwB66UioaWArYtdZjAh+SG7xE6I99soYvC/exsX0a\nG9qnceyuDbJ8lRCReMwW2b6CgffeBqmp9Ni2je8GaXDx+fbq8S9ZAgcOwJ/+ZG1Qf/sb3HOPWbzi\n3HPdRvXSaCu0BCNCvwVYG4TjeCYmxqOgl27bQWxVJTvadmBN5yPovXMDIBMyQuThLlvk0xfeh/PP\nh+OOM5lcKSmmoMcfvv7aTHCecorXXQETjc+YASecAI8/7t85hUYnIEFXSqUDo4GXgzMcD3jpttiX\nQgB2JnRgdecjSC/YRVLxQZmQESIOV0FIxu5NPPz67ZCeDp98YsT8r3+FefNgyxbfTqA1zJkDAwZA\ncrL11515Jvzwg1mNSAhLAo3QnwQmAVVBGItnvFgufzvS+IDb23ZkTacjAOi3b7NMyAgRR5It1unn\n9PwdvDn7bkpbtYYFC6BTJ/PEtdeaxxdf9O0EX30Fv/4K118fhNEK4YTfgq6UGgPs0lov87LfNUqp\npUqppbt37/b3dCZPtti9fTIkrsScLy2NtdWC/s9OxeLnCRFH3fKJjkX7eWv2XcRVlHHDZQ9A9+61\nTx5+OIwZAy+9ZNbytMrjj5uLwiWXBG3MQngQSIQ+FBinlNoEzARGKKXerr+T1vpFrfVArfXAlJQU\n/8/WuTPs2OH++bw8iI5m3rRzWfr0BEhNpe/uDf6frxGQPheCFfIPlQNgKyvh9XfvoXPhPq46fyrL\n2roITm64AXbtMhaKFXJzYf588zqLDezkcxs5+C3oWuspWut0rXV34CLgS611ozRQyc6xMyuvgqLN\nee4/UHa7KXJwLCidmRlWLQDqLyzg1IJUEOrgmPc5848l9Nm5nn+M+SfL03q5ng8aORKOOgqeecba\nwZ98kspWcYwu72NJoOVzG1mEfR664wO1IbYt8eUl5O/c6/oDZbebCSMH/frBmjVQUtK0A3aD9LkQ\nrOIo0Bm26Rf22RL5vOcJ7gt0oqKMF754MaxY4fnAe/dS8frrzOl9GqsrWlsSaPncRhZBEXSt9deN\nlYPu+EDtTOgAQOfCfa4/UHY7pNW5Jc3MNJOoq1d7P0lOTqMvniF9LgSrZGWm8eCf+jB8ywqWHHYc\nqe3iPRfo/OUvxj557jnPB37hBWJKSnix/1inzZ4EWj63kUXYR+iOD86u+HYAdCra57S9hvqC3q+f\neczJ8Xj8TxYsp2rAAO4++6YGt5/B9A6t9rkQv1IAyNI76VSwh9ET/8LiySM8T+63b28mON9+2xQL\nuaK0FJ5+mkU9+vNHSsO0w235xS4/e9KfJbIIe0F3fHB2JbQHoFPhfqftABQUwMGDToKend+Korg2\nvPlctsdFAF6e/T1RWnPm70ucbj+D7R1a6XMhfqVQw6xZppjOaiXnDTdAURG8+ab74+3YQfapF7p8\nOskW6/Kzd9oxKdKfJYIIe0F3CKFD0FMK9zX8QDna5lZ76Nk5dqZkr2ZVSg9679zgVhinf5ZL60IT\n0ZywdRVtS4tqbj+D7R1a6XMRzHM2h0g/7N9DdraZiHd0+QwWWpvGWSNHmujbCgMGmCrOZ581r69/\nvMcfh2OP5ZSbLnEp0Erh8rP31W+7pT9LBBH2/dBrVlj59DdKo2M5suJgww+UQ9DTaldjKS6vZE3n\nI7jg189Ruoricrhn3mqn123LL6Zf8UEAYqsqOWXDMj7qNdyjPxiId+itz4W7Y9vzi+kxeX7D1dbd\n0BxWjgn791BRAZMmmVTaF16AadOCd+wff4TNm+Hee3173Q03wBVXmMKhESNqt3/9tZkwfeUVsvqn\ng1I1KxY5PlO3znKdEeZYf3Tx5BEunxfCi7CP0KF6hZUppxPXLY1LDott+IWuJ+gOYVzfPp348hI6\nFuUDkF9c7hTlpSbbSCo1LQNKo2M5fd1PNdubwjusH4HWrxCsiy8WTHPITAj79/DGG/DHH+au8KWX\nTPfCYDFrlumdkpXl2+suuAA6dGiYwlivkKjuikUOf97T51psv8ghIgTdwd6kjixbsrrhLbjjlrda\n0B0fznxbWwCSSgprjlFXECaOyqBjWREAC3oO4bQNS0mINtsbu7ezK7+8qKyC2CjPqyxZEbXmkJkQ\n1u+htBTuuw8GDzbR+c6d1gt7vFFVBe++C2edZXqV+0Lr1nD11TB3bu13IjcXPvrIayGRq8+7g7C6\nkAoeiRhBz86xs7Q0jqT8PQ2jVbvdeI02I+QO0T3QOgFwFvS6gpCVmcbY9DhKYuOYf8wwkksKea5H\ncY01EnTvsLLSRHMFBS4j0PJKTULrmJpzusObqDWHzISwfg8vvmgaYv3730Z4jzzSemGPNxYvNp/n\nC11PXnrluuvMReGll8zPTz5p+p176dvi+Ly7IywupIJXIkbQp3+Wy/Y27ehUtL9mW03kUC9lMSsz\njXZtYslvbSL05JKDNc/VF4SerSpondKB59+aAq1aMWztEqfj1L81DYiZM+Gaa+Ctt9x+QfIPldec\nM81HUXNYOPb84gYXhEjLTAjb1W+KiuD++03b2TPOqC3s+e470/AqUGbNMpH02LHe93VFjx5wzjnm\norN1q7GGLrustqGXB7Iy03z+zAnhRcQI+rb8YnYltCextIi48tpGRPb8Yn79aQ1LSls7+XxTxx5L\nSVtzy+qI0F0Kwr59JrpPSDATSfPmNcwSCAZVVfDgg+b/y5ZZikB9EbW6Fg4Yz90h6pGYmRC2q9/8\n97/GYrn//touWldeaUQ40Ci9shLeew9Gj4a2bf0/zqRJZoyDBpmGdv/4h+WXhu2FVLBE2Ge5OEhN\ntrG7prhoP1uTu9Q81/XgHhZ2OoJ762RBZGWmEfvnwfAMJBcXkuYuQ8Qh6GCiohtvNL7jMccE9w3M\nm2eqVtu2heXLmfj3aU5ZHNDwi1OT4VMvI8GVqLmycDRGCCM1QyHUq99k59idfvdTTurKmIcfhrPP\nhqFDa3esW9jzyCO+e98OFi0yQnzRRYENfPhwePRRuO02GDUKjj3W8kt9+cwJ4UfECPrEURnM/7Uj\nAJ0K99UIekxlBR2KDrCjbYcGS86NHtYLYmO5u90+7v7Xac59SR3s329uU8G0Ir3xRvjww+AL+sMP\nG6/1vPPg8cfJ6tUBzu3r9YtjVdTCehIxAnGVNrnpzvvN5+Xf/274ghtvhFdfNRbHzTf7d9KZMyE+\n3lgmgXLrrdCli/OFxyKhvpAK/hMxlktWZhoXjz8BMP1cHHQq2kcUmh3VvV6cBCwqCu64A95/39yG\nurJS6kaM4TLaAAAc00lEQVTohx1mWgbMmxfcwVdUwE8/mYmuwYPNzytXBtWjD+tJxAjE1R3PuF+/\n4PuME6B//4Yv6N/ffWGPFcrLzed03Dho08bPUddBKXPXIKsLtSgiRtABRoww/VmeHdG1ZvKmy8G9\nAOxoawS9gYDdfbeJnh591ETJ9akr6GBsl++/hz17gjfwbduMh969u6noA1jmcV0QnxHvM7jUv7NJ\nLCnksAM7+aZLL/cvcth1ixb5fsKFC81n0d/sFkEgwgSdDh1Mf4vt22sEzCHoO9t2cC1gSsFTT5lo\nZcoUkzfsoLQUDh1yFvRx44z4fvxx8MbtWPPxsMNMxNSuHSxfHrzjE8aTiBFK/cCgz451AOw40oOg\nn3eemRydO9f3E86aBYmJJg1SEPwkYjx0wFgoXbrA9u01QrU550PzXFq6ewGLioLXXzed6K6/3iyM\ne+GFxg8FI7AO+vc3/Tk+/BAuvzw4464r6EqZKD3IETqI9xlMJo7KcPLQ++xcD8DISz34223amEyp\nDz801Zmu5mxcUVoKH3xgKkPj4gIdutCCiSxBByO227cD1TPyvdrAF3F8cl+W5y9QbGxtBd6ll/L9\n7nKeWV/GDODub7fRf4jdHC8qykyOvvOO+aIF4wu2dat57NbNPPbvD088YcrFW7UK/PjNmPqZJk2V\ncVE/22PQvk0c6prO6NP6eH7hmDHm7s6XTKkFC0ywIXaLECCRZbmAk6ADtUVFVqIhmw3mzSP/qGPI\nvPWv9PnlWwA2VMY596sYNw4KC/3zQl2xZYu5C0gwlasMGGAmwVatCs7xmymhbidcd9J6ZHEebYYM\n8v6iMdXrvHz0kfUTzZplPh9nnOHfQAWhmuYj6FZJSmLCefewLbEjU75+HTAtApz6VZx+uhH/Dz8M\nzpi3bDF2iwNHlkSQffRA8bVdbWO3tw2bBl0FBaYRl6vslvp06wbHH29d0IuLjed+7rlNercW9q2J\nBb+IPEFPTTUZKI7udnl5zmuJWmBNRWsuv2Aa29qavHZHE6+azAabzfSiDlbVaH1BP/JIU3wSDB/9\nmWdMO4EAl9DzNRpuiug5bHLrHYuNOzKUvDFmjGkFsH+/930/+cTcDTah3RLqOx+h8Yg8QXeI948/\nGrH1NULHZDDYkzpxyUX389jJE9ia1Llmew1jxxohXrky8DHXF3SlzJqngUboy5fDLbeYRkx33hnQ\noXyNhpsieg6b3HrHhddKhA5G0Csr4dNPve87axakpMBpp/k/Ph8JmzsfIehEnqA7hHH4cBPVlJb6\nLOiOlMdN7dN4eujFoFTDlMfRo81joEVGBw9Cfr6zoIOJ9lasMF66P5SVmR4inTqZ5ksPPWT6gPiJ\nr9FwU0TPYZNbv3y5uTPs3Nna/oMHG5H2ZrsUFhpb7/zzTTpuExE2dz5C0IlcQQeTtQI+Wy6Wcra7\ndjVfzEB99PoZLg769zcXo7Vr/TvuQw+Z7n7PP28i9CFDzOrvq1f7dThfo+GgRc+//QbDhrn8PYdN\nbv3y5dbtFjCZUqNHGzulosL9fh99ZDz0INotVrzxsLnzEYJO5Al6XWF85hmzSsupp/p8GEtl9+PG\nmZL9upOwvlI3B70uDoHwx3ZZudL0E7n4YjPGuDgTnSckmEWF8/N9PqSv0XDQoudnnjF+87hxZi6g\nsNDp6aC3MPaVoiJz0bFqtzgYM8Z46N9/736fWbNM4HDyyYGNsRqr3njY3PkIQSfyBN1WJ4oYPtx8\nKTp2bJxzjRtnHn1JQauPO0Hv2dMIsK8ToxUVxmpJTjYVsA7S0swdy8aNPrVLdeBrNByU6Lm83Pz9\nxo+Hf/0LXn7Z9NJZssT7a5uKFStM5bCvgj5ypKl9cPfZKSgwEfyf/wzRrlcK8hWr3njY3PkIQSfy\nCovqEqQvglv69DH9V+bNg7/9zb9jbNlixtm1q/P2qCj/JkYfe8xcBGbPbnghGzYMrr0WXnnFiH1i\nok+H9rXSNODK1C++gN27jVWUlWW6DF5+uYlYb7/d9OGJdb/OaqBYKlpy/H18FfTERHPn+NFHpqVu\nfebONZZbEO0WX7xxqSpunkRehF6XqEYevlKmn/SiRf6nBW7ZYqJnV5Ne/fublDirx/79d5g61eQs\nn3++630uvRRKSoK3xmVjMmOGudM4+2zz8/DhJiK+7DJjKZ14oukP3ghYTt1budL0+vFx4h0wtsva\ntbB+fcPnZs0y9uGQIX6N3xXijQsRJ+jZOXb2xycDcOFLPzZ+7uzQoSZTZc0a/16/dWtDu8VB//6m\nOViuxXSx1183lsszz7ivjD3hBJPnPmOGX8NtMoqKIDvbWA512yskJZn3+e67Rtxd9R4PApZT91au\nNHdqVvuy1MWRKVXfdtm/35T7X3BBUIMS8caFiBJ0R1S1KdGkjxXt2d/4BREnnWQePU1ueWLLloYZ\nLg58baW7YIGJWrt0cb+Pow/2l18GNpnb2Myda0R9wgTXz59/vrFfXn4ZduwI+ukt2RNam/YMfd0v\nnlyXBhkmBa2hV6+Ggv7BB2b+IMjFROKNCxEl6I6o6oasybw2YCxrOvVo/IKII44wud7+CHpVlecI\nPSPDTPJaEfQ9e4yfO3Kk930nTDDnnjnTt/E2JW+/bS50w4a532fyZJNv/8QTPh06aKl7W7eau7M+\nXhpy4d7C+X3wqcayKyio3XnWLPO5GjjQp/dlhZBnBQkhxW9BV0p1U0p9pZRao5RarZS6JZgDc4Uj\netqemMK9Z1xLVVS00/ZGQSkTFfso6Nk5dsbd+T6Ul/Po2mLXdxExMabvh6O03BMLF5qI8cwzve+b\nkWGi/3C1XXbtMncbF1/s2XLo2dNYMs8/DwUFloQ6qKl7jiphC4LuzsJ5Mu5oE41//rnZuHu3+Vte\neKF/No4geCCQCL0CuE1r3RsYAtyolOodnGG5JmSTPiedBOvWmS+jBRyiEpVniorWxCa7t4b69TOC\n7q1nzOefG3/ZalQ3YYKJ/K36803J7NlmItid3UJtlD229YlQUMAX191uSaiDmrrn6IZpQdDdBRUL\nko4wnRQdhVNz5pj3Lq1yhUbAb0HXWm/XWi+v/v9BYC3QqPd3IZv0cfjoFvOjHaKSWmAuANsSU9xb\nQ5mZphf2pk3uD6i1iWhPP916ibgjApw929r+TcmMGUYkjzvO5dN1o+yVXY7is55DGPz+a8QVODe7\ncvU79TV1z6M9sWqVqUJOTvb6ltwFFZ3bJ5gsno8/NkI+c6a5g3Lz3gUhEILioSulugOZwI8unrtG\nKbVUKbV0t8UI1x0hm/QZMMDkQ1u0XRzicfz2383PiSmAiSobWAX9zDqpHm2X3383fq4Vu8VBaioM\nGgTz51t/TVOwfj388IPH6Lx+lP3osMtIKCvm+h8a9qqpL9RBvYtzZLhYwGOwMXasububN8/46WK3\nCI1EwIVFSqkE4H3gH1rrgvrPa61fBF4EGDhwYMC9aENSEGGzmUjaoqCnJttg82b+suxDsnufQkHr\nhJrnHFYBVK+K07ev8ZFzckzZvisWLDCPViZE6zJ6NNxzj/GsO3Xy7bWNxf/+Zx4vvthtYU99kf4j\n5XDm9BnBX5Z9yGsDxrEjsbagKskWy9CHvqw5xmnHpPD+MrvTBcGvu7iKCpNDbvEiWn+FI6dCpe6j\nTHHZ3/9u7rbEbhEaiYAidKVULEbMZ2itm6SSJVSN+dcddRylS37kqEnzvJ534qgMJn/7JlopHjnl\nigbPO1kFNptZqsxThD5/Phx1lMmM8IVzzjEC4piQCwFOf68HF3Lw1Tdg2DCy98W49cRdRdNPnnwJ\nSmtu/v6dmm2xUYqisgqnY7y/zM55A9ICv4tbt85k2FiM0MGDhdOuHXv6DQK7nd86Hs7QeTuk97jQ\nKASS5aKAV4C1WuvHgzck94SqMX92jp1XC9oSV1FG2oGdXs+bVZbH2NVfM3PYn9mW6DoydopC+/Uz\nEborCgpMTvn48b4PPDPTVDmGSNDr/73a5a6i7ab15Awf7XHy0pV9sbdjKsvOvoALVn5Oxu5NpCXb\nSGgdQ3mlbnCMr37bHXjqniPDxWIOuieyc+y8mnwsAB/1GiYLSgiNRiAR+lDgMmCEUuqX6n8elkQP\nnFA15p/+WS6/JaUCcMQ+u+fzag3/93/QuTN/mfscaVY83cxMs/LSnj0Nd/z0Uygv59teJ/l+ZxId\nbdapXLAgOCsv+Uj9v1fW6q8oi4phSlSGx8lLd3MlJ772JDHt2/PZ14+z+Ipe5B9y3Us+KGmsq1YZ\nK8zqQs8emP5ZLu9lDGfhkYN4t69ZN1QWlBAaA789dK31d0CTzuyEqjH/tvxiDrWvFfSvjhzk/rzv\nvmu89pdegrZtmTgqgylzVnr2dB0ToytWmEyWusydS2lye67bEEdRpTlfAx/eEyNHmkyXNWvg2GN9\neNcuqKoynRxHjzY9brxQ9/cTVVXJ2N++5esjB5JbFmtWjXLx+3Nc6NzOlXz4oblIjRpFxp+m8Vtp\nw49wUNJYV60yNld1d09LjbzcsC2/GN22A1efP7XBdkEIJhFVKdqUeeh1vd8opdhvSyS/dQI99tVG\nxkm2ep0AS0pMG9jjjjMtbrGYmeMQ9Pq2S3k5fPwxXxw5iKJ6/buKyyu5Z95q71G7YyLVMbEaCLNm\nwdNPm0k9R1tgD9T9u5y4ZSWdC/eR3fvUGkH0KwV1yBDTAyY3lxnZ02ivnaP0oKWxrlxZY7cEavVJ\n0yyhqYgoQW+qPPT6X+BKrUEptiZ1Jv3Arpr9isoqnL/UTz1l8skfe8ypta/XfOeOHU2+c/2J0W++\ngfx85h7mupgov7jcu8gcfjgcfXTgPnp5uWlne/TRJp/6ssu8doms+/fKWv01B1vZ+P6YITXRrd8p\nqGecAe+8Q4dVOXzy7ZMcnhAT3DTW4mIzKVo9IRqo1SdNs4SmIqL6oXtMDQsirr7AAPakThy5N6/m\n5/JKzfTPcs35d+0ynQHHjDGC4yuuJkbnzoXWrVnf70Q45P0QDpFp8PsYORJee830367b2dAX3njD\niNy8ebBvn+lhPn266bfiBsc4/vPRr5z1+2K+6Tucey4cWLM9oBTUc8+Fl16i89VXs6hbZ5MOGUB/\n/LqWyqlFW3lN6xpBD9Tqa6rPrSBElKBD0+Shu/ui5iV2YvjG5WaCsbowpGbfqVNNZDd9un8nzcw0\n1YTFxca31doI+siR/H1svwY+vE9jP/NM03L3++/9W12+pATuvdfYHWPGmG3z58Ndd5mLl4d2BFmZ\naWSt+x7Kihn90D8hmH+7q64yF5eJE03h1+uv+7XYsuOOzPH7bb/BFIR9Ed2JM8Cr328FWVBCaAoi\nynJpKtx9Ue1JnWhTXkr74gLnfVevhhdfhOuv9z8rol8/M+noSJdbscL41OPHu7Qn2rVxvZKPy7Gf\neqqJXv21XZ5/3mThPPCAuZApZbZ16WIqPouK3L+2vNy8Lj3dv4tJNW7rD/75T3P8GTNMu10/snnq\n35EdvWczpdGx3LemFBDLRIgcRNBd4OoLDGCvzilPq/bRa77U//ynWXJs6tQGr7FMZqZ5dPjoc+ca\n4ayOiOv78FPHHmtdZBITTXTtj6AfPGgE8/TTnQW5fXt480344w+49Vb3r3/kEfOennrKb0vE66Tk\nlCkwbRq884755yP172oydm9mXYdubD1YBkifcSFyEEF3Qd0vMNTmZtqTqgW9YBft2sSaL/XOlSZX\n/K67oEMH/0/avbuZHF24kOwcO7kvvs3S1GMY+tpql9kUPovMmWea7ot79/o2rv/8x/Qhuf/+hs+d\ndhpMmmRSNGfNavj8mjVw332mBa67tgYWsDQpOWWKWa3plltc5/N7oP5dzdF7NvNbyuFO26XPuBAJ\niKC7wfEFTku24biJ35pkVkpKO7CLNq1iyOrbGW67zSz5duONgZ1QKZgwgao5c/ht0r1kbFvH5z1P\n8Jgi55PIjBxp7IiFC62Pad8+MycwfrwRS1dMm2b6xf/tbyZad1BZCVdfDQkJJtUxACxNSkZHm9WN\n8vM93zG4oO4dWWJJIakH97Cxcw+xVISIQwTdC3VFoyAunoOtbKQX7DLbX37ZRKHTp/ufPVKXqVP5\no1N3Jn/xEvtsicztdSoQpKrCQYNMP3VfFo9+5BFjuUyb5n6f2FjTEjYmxqyRWVJitj/9tOmq+J//\nQOfOAQ3dch53nz4mUn/7bXPXZJG6dzsZezYDMDTrFInChYhDBN0LTqKhFPbETqQf2EXP1pUmL3v4\ncMjKCs7J2rXjwvOn8cyQP3PhxQ86dRUMuKowJgauu85YI4sWed9/+3bje19yifd+JocdZtIaf/nF\ntD3YsAHuuMM0B/PQJtcqPk1K3nGHmZi+9looLLR8Dsfdzrsnmc6YJ2b5P4ErCKFCBN0L9cUkL6kT\n6Qd3899Nnxpv+fHHg9rbOr5rJ6afcgV/pBzutD0oVYV33w09ehixc0TS7rj/fpOhcs891o49dqyZ\nHH7uOWPvREebTJgg/G58mi+IizN3Tlu2mHkNX1m6FFJSTFaOIEQYEZeH3tTULwo5kJLKqfaVxLzz\nikmTGzAgqOez1PvFAm57jzz3HJx1Fjz4oMktd8WmTSYN8+qrTT8TqzzwAHz3nbFann/eLAIdJHzK\n4x46FP76V3j2WXORSfPBOvn5Z5NXLwtQCBGI0k3YhW/gwIF66dKlTXa+RmH6dJPZYbOZSUBfxMIi\ngTSCcrze1UWhJqqdMME0EVuxAnr1aniAK6806X/r1/v+/nbuNH1jJkzwvAB0Y7Nxo1lk+uabzV2U\nFYqKTIrnnXe6v9gJQghQSi3TWntdUFgsF1/p3t08TprUKGIOgafIeU3ze+IJk31y7bWmmKkua9ea\n/PKbbvLv/XXubPq8hFLMwVhLEybACy9YTmP8duZnUFXF1atp0sVTBCFYiOXiK+ecY7I/Ak1TdEOg\n0TlYSPPr1AkefRSuvpqcqY9yU/zAmvPNXvg4aW3aeOzREjFMngxvvWUybTxl6mB+7xtmfMgw4Jeu\nR7PXlxbFghAmSITuK/HxpndImzZBP3SwVmSylOZ35ZXsGTCEIx6dRlneNjTQfu2vpH0xn98u/qsp\ncop0evUyTbyeftqs/OSB6Z/lMnhDDmtTurM3PhmQRSiEyEMEPYwI1opMltL8lOLvp1xH6/IS7vry\nJfO6b95kny2Rv6eOcHncpl7P1er5PO43ZQocOGAmSD2wd3c+g/LW8P3hxzttl0UohEhCLJcwIlgr\nMllt1/pDbEeeOfFC/u+7GWxv25Hhm3KYNuKvrCtpeJ2vP9Hq06pJfmD1fF73GzDAZPU8/riZIHVz\nZ3XmgQ3EVZbzXfd+TttlEQohkpAIPYwI5so2ViZWU5NtPH/C+axrn861P81hR0J73s48x+X5rNw9\nBDOCt3q3Ymm/2283NQOvvOL2fDdWbaY8Kpqf0muX6ZOOikKkIYIeRjR1m9aJozKItrVm0tm3kJfY\nicln/Z0om83l+bzdPQTL/7d6Pp/2GzbM/Js+HcrKXO6fsfonCvpmkty5g3RUFCIWsVzCiKZe2ab2\nfK0Ylv4qqck2HnRzPm+LPHiKlP0Zv9VFJSwvPnH77XD22abPy1VXOT+Xnw9Ll9LhjjtYPNn1/IEg\nRAIi6GFGU69sY/V83ipYg+X/Wz2fr/sxahT07w8PPQRXXOHcm33uXJOPP2qUX2MVhHBBLBfBEt76\nqQR7ZXur/Vss93lRykTpf/wB773n/NwLL0BGBpx0kl9jFYRwQUr/haDgtd1AOFBVBcceC61amc6Q\nhYW1VbGPPWY6RQpCGGK19F8sFyEoRMTK9lFRJi/9iitg9Gj45hvTvyUz0/SvEYQIRyL0MCEYJf+C\nBcrLTZS+fTtcdJHpKHnCCdJdUQhrJEKPIJq6aKdFExtrep7HxDRK+wZBCCUyKRoGBKvkX7BIYqKI\nudAsEUEPA4Kd8icIQsskIEFXSp2llMpVSq1TSjWDfquhIdgpf4IgtEz8FnSlVDTwDHA20Bu4WCnV\nO1gDa0k0dcl/fZq6i6IgCI1DIJOig4F1WusNAEqpmcB4YE0wBtaSyMpMY+nmfbzz41YqtSZaKc4b\n0DQVoy1tQlayiYTmTCCWSxqwtc7PedXbnFBKXaOUWqqUWrp79+4ATtd8yc6x8/4yO5XVKaSVWvP+\nMnuTRMotaUI22A3EBCHcaPRJUa31i1rrgVrrgSkpKY19uogklKLakiZkW9LFS2iZBGK52IFudX5O\nr94m+EhTiKo7q8Fyt8JmQEu6eAktk0Ai9J+BnkqpHkqpVsBFwLzgDKtl0dhZLp6shlBPyDYlkk0k\nNHf8FnStdQVwE/AZsBaYrbVeHayBtSQaW1S99Sq31K2wGdCSLl5CyySg0n+t9cfAx0EaS4ulsRtb\nebMamroHe6iIiAZighAA0sslTGhMUW1JPrk3WsrFS2iZSOl/C0CsBkFoGUiE3gIQq0EQWgYi6C0E\nsRoEofkjlosgCEIzQQRdEAShmSCWi9DikYZdQnNBBF1o0bS0bpNC80YsF6FFIw27hOaECLrQopGG\nXUJzQgRdaNFIwy6hOSGCLrRopIpWaE7IpKjQopEqWqE5IYIutHikilZoLojlIgiC0EwQQRcEQWgm\niKALgiA0E0TQBUEQmgki6IIgCM0EpbVuupMptRvY7MdLOwJ7gjycUCHvJTyR9xKeNJf3Euj7OFxr\nneJtpyYVdH9RSi3VWg8M9TiCgbyX8ETeS3jSXN5LU70PsVwEQRCaCSLogiAIzYRIEfQXQz2AICLv\nJTyR9xKeNJf30iTvIyI8dEEQBME7kRKhC4IgCF6IGEFXSk1TSv2qlPpFKbVAKZUa6jH5i1JqulLq\nt+r384FSKjnUY/IXpdSflVKrlVJVSqmIy0ZQSp2llMpVSq1TSk0O9XgCQSn1qlJql1JqVajHEghK\nqW5Kqa+UUmuqP1u3hHpM/qKUaq2U+kkptaL6vdzbqOeLFMtFKZWotS6o/v/NQG+t9XUhHpZfKKXO\nBL7UWlcopR4G0Fr/K8TD8gulVC+gCngB+KfWemmIh2QZpVQ08DswEsgDfgYu1lqvCenA/EQpNRwo\nBN7UWvcJ9Xj8RSnVFeiqtV6ulGoLLAOyIvHvopRSQLzWulApFQt8B9yitf6hMc4XMRG6Q8yriQci\n40rkAq31Aq11RfWPPwDpoRxPIGit12qtI3UBzsHAOq31Bq11GTATGB/iMfmN1vobYF+oxxEoWuvt\nWuvl1f8/CKwFIrK/sTYUVv8YW/2v0bQrYgQdQCl1v1JqKzABuDvU4wkSVwGfhHoQLZQ0YGudn/OI\nUOForiilugOZwI+hHYn/KKWilVK/ALuAz7XWjfZewkrQlVJfKKVWufg3HkBrfYfWuhswA7gptKP1\njLf3Ur3PHUAF5v2ELVbeiyAEG6VUAvA+8I96d+gRhda6UmvdD3MnPlgp1Wh2WFitWKS1PsPirjOA\nj4GpjTicgPD2XpRSfwHGAKfrMJ/I8OHvEmnYgW51fk6v3iaEmGq/+X1ghtZ6TqjHEwy01vlKqa+A\ns4BGmbgOqwjdE0qpnnV+HA/8FqqxBIpS6ixgEjBOa30o1ONpwfwM9FRK9VBKtQIuAuaFeEwtnuqJ\nxFeAtVrrx0M9nkBQSqU4stiUUjbMBHyjaVckZbm8D2RgMio2A9dprSMymlJKrQPigL3Vm36I4Iyd\nPwFPAylAPvCL1npUaEdlHaXUOcCTQDTwqtb6/hAPyW+UUu8Ap2I6++0EpmqtXwnpoPxAKXUy8C2w\nEvN9B7hda/1x6EblH0qp44A3MJ+vKGC21vq+RjtfpAi6IAiC4JmIsVwEQRAEz4igC4IgNBNE0AVB\nEJoJIuiCIAjNBBF0QRCEZoIIuiAIQjNBBF0QBKGZIIIuCILQTPh/O0QmPyocnOUAAAAASUVORK5C\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1112dca20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.plot(np.sort(x), y100_predict[np.argsort(x)], color='r')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_plot = np.linspace(-3, 3, 100).reshape(100, 1)\n",
    "y_plot = poly100_reg.predict(X_plot)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x113e376a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.plot(X_plot[:,0], y_plot, color='r')\n",
    "plt.axis([-3, 3, 0, 10])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### train test split的意义"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.2199965269396573"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lin_reg.fit(X_train, y_train)\n",
    "y_predict = lin_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.80356410562978997"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly2_reg.fit(X_train, y_train)\n",
    "y2_predict = poly2_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y2_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.92129307221507939"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly10_reg.fit(X_train, y_train)\n",
    "y10_predict = poly10_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y10_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14075796419.234262"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly100_reg.fit(X_train, y_train)\n",
    "y100_predict = poly100_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y100_predict)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
